#pragma once
#include "Helper.h"

namespace catan
{
	class IHelperBase
	{
	public:
		IHelperBase(void);
		virtual ~IHelperBase(void);

		void SetHelper(Helper* val) { VALID(mHelper == 0); mHelper = val; }
		template <class T> T* New()
		{
			VALID(mHelper);
			T* t= new T();
			t->SetHelper(mHelper);
			return t;
		}
	protected:
		Helper* mHelper;
		
		//Helper* Helper() const { return mHelper; }
		
	};
}